home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 26 / AACD 26.iso / AACD / Programming / AllPlaton / Unsorted / !UliTorte.AMOS / !UliTorte.amosSourceCode
Encoding:
AMOS Source Code  |  1999-01-17  |  4.0 KB  |  145 lines

  1. Screen Open 0,1008,800,32,0
  2. Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  3. Palette $FFF,0,$888,$F00,$800,$F0,$80,$44F,$228,$CC0,$440,$F0F,$808,$FF,$88,$F80,$840,$555,$111
  4. Dim TRT#(20),TRT(20,1),TRT$(20)
  5. Degree 
  6. LEGENDE=1
  7. Restore DAT1992
  8. X=510 : Y=450 : R=300 : SH=20
  9. Gosub TRTE
  10. Save Iff "dh1:pop1992.iff"
  11. Cls 
  12. LEGENDE=0
  13. Restore DAT1996
  14. X=400 : Y=450 : R=300 : SH=20
  15. Gosub TRTE
  16. Save Iff "dh1:pop1996.iff"
  17. End 
  18. TRTE:
  19.   Read T$,NUM
  20.   MXV#=0.0
  21.   For A=1 To NUM
  22.     Read TRT$(A),TRT#(A)
  23.     MXV#=MXV#+TRT#(A)
  24.     TRT(A,0)=((A-1) mod 10)*2+3
  25.     TRT(A,1)=((A-1) mod 10)*2+4
  26.   Next 
  27.   TRT#(NUM+1)=MXV#
  28.    Extension_8_059C "CGTimes",60
  29.   Gr Writing 0
  30.   XX=X-Text Length(T$)/2
  31.   YY=Text Base+10
  32. '  Ink 2 : Text XX-1,YY,T$ : Text XX,YY-1,T$ : Text XX+1,YY,T$ : Text XX,YY+1,T$ 
  33. '  Ink 1 : Text XX,YY,T$ 
  34.   P=1 : PCT#=0.0
  35.   DX=0 : DY=0 : DISP=0
  36.   OX=R : OY=0
  37.   For A=0 To 1024 Step 2
  38.     PT#=(A/1024.0)*MXV#
  39.     If PT#-PCT#=>TRT#(P) or A=1024 Then PCT#=PCT#+TRT#(P) : Inc P
  40.     If P=NUM and DISP=0
  41.       DISP=1
  42.       DX=Cos((A+1024)*180.0/1024.0)*R/5
  43.       DY=Sin((A+1024)*180.0/1024.0)*R/5
  44.     End If 
  45.     Exit If P>NUM
  46.     XX=Cos(A*360.0/1024.0)*R : YY=Sin(A*360.0/1024.0)*R
  47.     Ink TRT(P,1) : Polygon X+OX+DX,Y+OY+DY To X+XX+DX,Y+YY+DY To X+XX+SH+DX,Y+YY+SH+DY To X+OX+SH+DX,Y+OY+SH+DY
  48.     Polygon X+DX,Y+DY To X+SH+DX,Y+SH+DY To X+XX+SH+DX,Y+YY+SH+DY To X+XX+DX,Y+YY+DY
  49.     OX=XX : OY=YY
  50.   Next 
  51.   P=1 : PCT#=0.0
  52.   DX=0 : DY=0 : DISP=0
  53.   OX=R : OY=0
  54.   TX=0 : TY=0
  55.   For A=0 To 1024 Step 2
  56.     PT#=(A/1024.0)*MXV#
  57.     If PT#-PCT#=>TRT#(P) or A=1024
  58.  
  59.        Extension_8_059C "CGTimes",35
  60.       If LEGENDE
  61.         Ink 1 : Box TX+3,TY+6 To TX+16,TY+19
  62.         Ink TRT(P,0) : Bar TX+4,TY+7 To TX+15,TY+18
  63.         XX=TX+20
  64.         YY=TY+Text Base
  65.         TT$=TRT$(P)
  66.         Ink 1 : Text XX-1,YY,TT$ : Text XX,YY-1,TT$
  67.         Text XX+1,YY,TT$ : Text XX,YY+1,TT$
  68.         Ink TRT(P,0) : Text XX,YY,TT$
  69.         Add TY,30
  70.       End If 
  71.  
  72.       V#=((PCT#+(TRT#(P)*0.5))*360.0)/MXV#
  73.       XX=DX+X+(Cos(V#)*12*R)/13 : YY=DY+Y+(Sin(V#)*12*R)/13
  74.       PX=XX+Cos(V#)*R/7.0 : PY=YY+Sin(V#)*((R/7.0)+(P and 1)*0.0)
  75.       Ink TRT(P,1)
  76.       Draw PX-1,PY To XX-1,YY
  77.       Draw PX,PY-1 To XX,YY-1
  78.       Draw PX+1,PY To XX+1,YY
  79.       Draw PX,PY+1 To XX,YY+1
  80.       Ink TRT(P,0) : Draw PX,PY To XX,YY
  81.       YY=PY+Text Base-19
  82.       If PX>X
  83.         XX=PX
  84.       Else 
  85.         XX=PX-Text Length(TRT$(P))
  86.       End If 
  87.       TT$=TRT$(P)
  88.       If TRT#(P)/MXV#>0.04
  89.         Ink 1 : Text XX-1,YY,TT$ : Text XX,YY-1,TT$ : Text XX+1,YY,TT$ : Text XX,YY+1,TT$
  90.         Ink TRT(P,0) : Text XX,YY,TT$
  91.         TT$=(Str$(TRT#(P))-" ")+"%"
  92.         XX=X+DX+(Cos(V#)*4*R)/5-Text Length(TT$)/2 : YY=Y+DY+(Sin(V#)*4*R)/5+Text Base
  93.         Ink 1 : Text XX-1,YY,TT$ : Text XX,YY-1,TT$
  94.         Text XX+1,YY,TT$ : Text XX,YY+1,TT$
  95.         Ink 0 : Text XX,YY,TT$
  96.       Else 
  97.         TT$=TT$+" ("+(Str$(TRT#(P))-" ")+"%)"
  98.         Ink 1 : Text XX-1,YY,TT$ : Text XX,YY-1,TT$ : Text XX+1,YY,TT$ : Text XX,YY+1,TT$
  99.         Ink TRT(P,0) : Text XX,YY,TT$
  100.       End If 
  101.       PCT#=PCT#+TRT#(P)
  102.       Inc P
  103.     End If 
  104.     If P=NUM and DISP=0
  105.       DISP=1
  106.       DX=Cos((A+1024)*180.0/1024.0)*R/5
  107.       DY=Sin((A+1024)*180.0/1024.0)*R/5
  108.     End If 
  109.     Exit If P>NUM
  110.     XX=Cos(A*360.0/1024.0)*R : YY=Sin(A*360.0/1024.0)*R
  111.     Ink TRT(P,0) : Polygon X+DX,Y+DY To X+OX+DX,Y+OY+DY To X+XX+DX,Y+YY+DY
  112.     OX=XX : OY=YY
  113.   Next 
  114. Return 
  115. DAT1992:
  116. Data "M�usepopulation 1992",8
  117. Data "Feldmaus",35.7
  118. Data "Waldspitzmaus",27.2
  119. Data "Schermaus",11.9
  120. Data "Waldmaus",4.8
  121. Data "Erdmaus",3.2
  122. Data "Feldspitzmaus",1.6
  123. 'Data "Zwergmaus",0.8
  124. 'Data "Zwergspitzmaus",0.8 
  125. 'Data "Hausmaus",0.8 
  126. 'Data "R�telmaus",0.8
  127. 'Data "Sumpfspitzmaus",0.0 
  128. Data "sonstige",3.2
  129. Data "unbestimmt",11.9
  130.  
  131. DAT1996:
  132. Data "M�usepopulation 1996",8
  133. Data "Feldmaus",60.6
  134. Data "Waldspitzmaus",11.3
  135. Data "Schermaus",5.2
  136. Data "Waldmaus",4.7
  137. Data "Erdmaus",5.2
  138. Data "Feldspitzmaus",5.6
  139. 'Data "Zwergmaus",0.0
  140. 'Data "Zwergspitzmaus",0.0 
  141. 'Data "Hausmaus",0.0 
  142. 'Data "R�telmaus",2.1
  143. 'Data "Sumpfspitzmaus",0.5 
  144. Data "sonstige",2.6
  145. Data "unbestimmt",4.7